package com.sunshine.geek.bytecode;

import java.util.ArrayList;
import java.util.List;

import lombok.Data;

import com.sunshine.geek.bytecode.struct.info.ConstPoolType;
import com.sunshine.geek.bytecode.struct.info.FieldInfo;
import com.sunshine.geek.bytecode.struct.info.MethodInfo;

/**
 * java���������
 * @author zeqi.cw
 *
 */
@Data
public class ClassInfo {
	
	/**
	 * ħ����
	 */
	private int magicNumber;
	/**
	 * �ΰ汾��
	 */
	private int minorVersion;
	/**
	 * ���汾��
	 */
	private  int majorVersion;
	/***
	 * �����ش�С
	 */
	private int constPoolSize;
	
	
	/**
	 * ������
	 */
	private List<ConstPoolType> constPools = new ArrayList<ConstPoolType>(30);
	
	private int accessFlags;//����ķ��ʿ��Ʒ�
	private int thisClass;//�Լ�����
	private int superClass;//����
	private int interfacesCount;//�ӿڸ���
	
	private List<Integer>  interfaces = new ArrayList<Integer>(10);
	
	private int fieldCount;
	private List<FieldInfo> fieldInfo = new ArrayList<FieldInfo>(10);
	
	private int methodCount;
	
	private List<MethodInfo> methodInfo = new ArrayList<MethodInfo>(10);
	
	
	private int attributesCount;
	private List attribute = new ArrayList();
	
}
